//modificado..

package vista;

import java.awt.BorderLayout;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.List;
import javax.swing.BorderFactory;
import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;
import javax.swing.GroupLayout;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollBar;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.LayoutStyle;
import javax.swing.ListModel;
import javax.swing.SwingUtilities;
import javax.swing.WindowConstants;
import javax.swing.border.BevelBorder;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;

import modelo.Categoria;
import modelo.DetalleProducto;
import modelo.Ingrediente;

/**
 * This code was edited or generated using CloudGarden's Jigloo
 * SWT/Swing GUI Builder, which is free for non-commercial
 * use. If Jigloo is being used commercially (ie, by a corporation,
 * company or business for any purpose whatever) then you
 * should purchase a license for each developer using Jigloo.
 * Please visit www.cloudgarden.com for details.
 * Use of Jigloo implies acceptance of these licensing terms.
 * A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
 * THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
 * LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
 */
public class VentanaProducto extends javax.swing.JFrame{
	private JPanel jPanel1;
	private JTextField jtxtfechaRegistro;
	private JLabel jlblfechaRegistro;
	private JButton jbtnSalir;
	private JButton jbtnCancelar;
	private JButton jbtnAgregar;
	private JTable jTableIngredientes;
	private JButton jbtnImagen;
	private JLabel jlbldetalles;
	private JLabel jlblcodProducto;
	private JTextField jtxtcodIngrediente;
	private JLabel jlblIngrediente;
	private JTextField jtxtPrecio;
	private JTextField jtxtCodCategoria;
	private JButton jbtnRegistrar;
	private JLabel jlblListaIngredientes;
	private JComboBox jcmbNombreCategoria;
	private JScrollBar jScrollBarIngredienteProducto;
	private JPanel jPanIngredienteProducto;
	private JLabel jlblNombreCategoria;
	private JLabel jlblCodigoCategoria;
	private JLabel jlblCantidad;
	private JTextField jtxtCantidad;
	private JComboBox jcmbIngredientes;
	private JButton jbtnConsultar;
	private JTextField jtxtDescripcionProd;
	private JLabel jlblDescripcionProd;
	private JLabel jlblDatosProducto;
	private JTextField jtxtCodProducto;


	/**
	 * Auto-generated main method to display this JFrame
	 */
	 public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				VentanaProducto instProd = new VentanaProducto();
				instProd.setLocationRelativeTo(null);
				instProd.setVisible(true);
			}
		});
	 }

	 public VentanaProducto() {
		 super();
		 initGUI();
	 }

	 private void initGUI() {
		 try {
			 this.setTitle("Gestionar Producto");
			 getContentPane().setLayout(null);
			 getContentPane().setBackground(new java.awt.Color(82,209,232));
			 jPanel1 = new JPanel();
			 getContentPane().add(jPanel1, "Center");
			 jPanel1.setLayout(null);
			 jPanel1.setBackground(new java.awt.Color(255,255,255));
			 jPanel1.setBounds(12, 12, 727, 671);
			 {
				 jtxtCodProducto = new JTextField();
			 }
			 {
				 jlblDescripcionProd = new JLabel();
				 jlblDescripcionProd.setText("Descripcion:");
			 }
			 {
				 jtxtDescripcionProd = new JTextField();
			 }
			 {
				 jlblDatosProducto = new JLabel();
				 jlblDatosProducto.setText("Datos del Producto");
			 }
			 {
				 jbtnConsultar = new JButton();
				 jbtnConsultar.setText("Consultar");
				 jbtnConsultar.setBounds(636, 91, 76, 21);
			 }
			 {
				 jbtnSalir = new JButton();
				 jPanel1.add(jbtnSalir);
				 jPanel1.add(jbtnConsultar);
				 jbtnConsultar.setBackground(new java.awt.Color(82,209,232));
				 jbtnConsultar.setBorder(BorderFactory.createEtchedBorder(BevelBorder.LOWERED));
				 jPanel1.add(jtxtDescripcionProd);
				 jPanel1.add(jtxtCodProducto);
				 jPanel1.add(jlblDescripcionProd);
				 jlblDescripcionProd.setBounds(312, 131, 82, 14);
				 {
					 jtxtCantidad = new JTextField();
				 }
				 {
					 jlblCantidad = new JLabel();
					 jlblCantidad.setText("Cantidad");
				 }
				 jtxtCodProducto.setBounds(488, 91, 133, 21);
				 jtxtDescripcionProd.setBounds(488, 128, 133, 21);
				 jbtnSalir.setText("Salir");
				 jbtnSalir.setBounds(449, 601, 82, 27);
				 jbtnSalir.setBackground(new java.awt.Color(82,209,232));
				 jbtnSalir.setBorder(BorderFactory.createEtchedBorder(BevelBorder.LOWERED));
			 }
			 {
				 jlblfechaRegistro = new JLabel();
				 jPanel1.add(jlblfechaRegistro);
				 jPanel1.add(jlblDatosProducto);
				 jlblDatosProducto.setBounds(75, 43, 546, 28);
				 jlblDatosProducto.setBackground(new java.awt.Color(82,209,232));
				 jlblDatosProducto.setBorder(BorderFactory.createEtchedBorder(BevelBorder.LOWERED));
				 jlblfechaRegistro.setText("Fecha del Registro:");
				 jlblfechaRegistro.setBounds(312, 167, 127, 14);
			 }
			 {
				 jtxtfechaRegistro = new JTextField();
				 jPanel1.add(jtxtfechaRegistro);
				 jtxtfechaRegistro.setBounds(488, 160, 133, 21);
			 }
			 {

				 jcmbIngredientes = new JComboBox();

				 jPanel1.add(jcmbIngredientes);
				 jPanel1.add(jlblCantidad);
				 jPanel1.add(jtxtCantidad);
				 jtxtCantidad.setBounds(380, 368, 50, 22);
				 {
					 jlblCodigoCategoria = new JLabel();
					 jPanel1.add(jlblCodigoCategoria);
					 jlblCodigoCategoria.setBounds(312, 201, 158, 14);
					 jlblCodigoCategoria.setText("Nombre de la Categoria:");
				 }
				 {
					 jlblNombreCategoria = new JLabel();
					 jPanel1.add(jlblNombreCategoria);
					 jlblNombreCategoria.setText("Código de la Categoría:");
					 jlblNombreCategoria.setBounds(312, 234, 153, 14);
				 }
				 {
					 jPanIngredienteProducto = new JPanel();
					 jPanel1.add(jPanIngredienteProducto);
					 jPanIngredienteProducto.setBounds(184, 434, 347, 133);
					 jPanIngredienteProducto.setLayout(null);
					 {
						 jScrollBarIngredienteProducto = new JScrollBar();
						 jPanIngredienteProducto.add(jScrollBarIngredienteProducto);
						 jScrollBarIngredienteProducto.setBounds(331, 0, 17, 133);
					 }
				 }
				 {

					 jcmbNombreCategoria = new JComboBox();
					 jPanel1.add(jcmbNombreCategoria);
					 jcmbNombreCategoria.setBounds(488, 193, 133, 22);
				 }
				 {
					 jbtnAgregar = new JButton();
					 jPanel1.add(jbtnAgregar);
					 jbtnAgregar.setText("Agregar");
					 jbtnAgregar.setBounds(478, 366, 71, 24);
					 jbtnAgregar.setBackground(new java.awt.Color(82,209,232));
					 jbtnAgregar.setBorder(BorderFactory.createEtchedBorder(BevelBorder.LOWERED));
				 }
				 {
					 jlblListaIngredientes = new JLabel();
					 jPanel1.add(jlblListaIngredientes);
					 jlblListaIngredientes.setText("Listado de Ingredientes del Producto");
					 jlblListaIngredientes.setBounds(89, 401, 525, 21);
					 jlblListaIngredientes.setBackground(new java.awt.Color(82,209,232));
					 jlblListaIngredientes.setBorder(BorderFactory.createEtchedBorder(BevelBorder.LOWERED));
				 }
				 {
					 jbtnRegistrar = new JButton();
					 jPanel1.add(jbtnRegistrar);
					 jbtnRegistrar.setText("Registrar");
					 jbtnRegistrar.setBounds(242, 602, 82, 25);
					 jbtnRegistrar.setBackground(new java.awt.Color(82,209,232));
					 jbtnRegistrar.setBorder(BorderFactory.createEtchedBorder(BevelBorder.LOWERED));
				 }
				 {
					 jtxtCodCategoria = new JTextField();
					 jPanel1.add(jtxtCodCategoria);
					 {
						 jtxtPrecio = new JTextField();
						 jPanel1.add(jtxtPrecio);
						 jtxtPrecio.setBounds(488, 261, 133, 22);
					 }
					 {
						 jlblIngrediente = new JLabel();
						 jPanel1.add(jlblIngrediente);
						 jlblIngrediente.setText("Precio del Producto:");
						 jlblIngrediente.setBounds(312, 268, 134, 15);
					 }
					 {
						 jtxtcodIngrediente = new JTextField();
						 jPanel1.add(jtxtcodIngrediente);
						 {
							 jlblcodProducto = new JLabel();
							 jPanel1.add(jlblcodProducto);
							 jlblcodProducto.setText("Codigo:");
							 jlblcodProducto.setBounds(312, 98, 58, 15);
						 }
						 {
							 jlbldetalles = new JLabel();
							 jPanel1.add(jlbldetalles);
							 jlbldetalles.setText("Detalles del Producto");
							 jlbldetalles.setBounds(91, 323, 530, 30);
							 jlbldetalles.setBackground(new java.awt.Color(82,209,232));
							 jlbldetalles.setBorder(BorderFactory.createEtchedBorder(BevelBorder.LOWERED));
						 }
						 {
							 jbtnCancelar = new JButton();
							 jPanel1.add(jbtnCancelar);
							 jbtnCancelar.setText("Cancelar");
							 jbtnCancelar.setBounds(343, 603, 87, 24);
							 jbtnCancelar.setBackground(new java.awt.Color(82,209,232));
							 jbtnCancelar.setBorder(BorderFactory.createEtchedBorder(BevelBorder.LOWERED));
						 }
						 {
							 jbtnImagen = new JButton();
							 jbtnImagen.setIcon(new ImageIcon(getClass().getClassLoader().getResource("imagen.jpg")));
							 jPanel1.add(jbtnImagen);
							 jbtnImagen.setBounds(75, 95, 188, 160);
							 jbtnImagen.setBackground(new java.awt.Color(82,209,232));
						 }
						 {
							 jTableIngredientes = new JTable();
							 jPanel1.add(jTableIngredientes);
							 jTableIngredientes.setBounds(184, 437, 329, 133);
						 }
						 jtxtcodIngrediente.setBounds(562, 434, 44, 22);
						 jtxtcodIngrediente.setVisible(false);
						 jtxtcodIngrediente.setEditable(false);
					 }
					 jtxtCodCategoria.setText("codCateg");
					 jtxtCodCategoria.setBounds(488, 227, 133, 22);
					 jtxtCodCategoria.setEditable(false);
				 }
				 jlblCantidad.setBounds(278, 371, 65, 15);
				 jcmbIngredientes.setBounds(91, 365, 175, 22);
			 }
			 {
				 this.setSize(759, 725);
			 }

		 } catch(Exception e) {
			 e.printStackTrace();
		 }
	 }

/*
	 public void RemoverProductos(final AbstractTableModel VentanaDetalleProductoTablaModel) {
		 jTableIngredientes.setModel(VentanaDetalleProductoTablaModel);

		 jTableIngredientes.addMouseListener(new MouseAdapter() 
		 {
			 public void mouseClicked(MouseEvent e) 
			 {
				 int fila = jTableIngredientes.rowAtPoint(e.getPoint());

				 int columna = jTableIngredientes.columnAtPoint(e.getPoint());

				 if ((fila > -1) && (columna > -1))

					 System.out.println(VentanaDetalleProductoTablaModel.getValueAt(fila,columna));

			 }
		 });
	 }
*/

	 public void addListener(ActionListener actionListener) {
		 this.jcmbIngredientes.addActionListener(actionListener);
		 this.jcmbNombreCategoria.addActionListener(actionListener);
		 this.jbtnConsultar.addActionListener(actionListener);
		 this.jbtnRegistrar.addActionListener(actionListener);
		 this.jbtnCancelar.addActionListener(actionListener);
		 this.jbtnSalir.addActionListener(actionListener);
		 this.jbtnAgregar.addActionListener(actionListener);

	 }

	 public void setCargarComboIngredientes(List<Ingrediente> ingredientes) {
		 ComboBoxModel jcmbIngredientesOrdenModelModel =
			 new DefaultComboBoxModel(ingredientes.toArray());
		 jcmbIngredientes.setModel(jcmbIngredientesOrdenModelModel);
	 }

	 public void setcargarComboCategoria(List<Categoria> categorias) {
		 ComboBoxModel jcmbCategoriaOrdenModelModel =
			 new DefaultComboBoxModel(categorias.toArray());
		 jcmbNombreCategoria.setModel(jcmbCategoriaOrdenModelModel);
	 }

	 public String getCantidad() {
		 return jtxtCantidad.getText();
	 }

	 public void setJtxtCantidad(String jtxtCantidad) {
		 this.jtxtCantidad.setText(jtxtCantidad);
	 }

	 public String getDescripcionProd() {
		 return jtxtDescripcionProd.getText();
	 }

	 public void setJtxtDescripcionProd(String valor) {
		 this.jtxtDescripcionProd.setText(valor);
	 }

	 public String getFechaRegistro() {
		 return jtxtfechaRegistro.getText();
	 }

	 public void setJtxtfechaRegistro(String jtxtfechaRegistro) {
		 this.jtxtfechaRegistro.setText(jtxtfechaRegistro);
	 }
	 
	 public String getCodCategoria() {
		 return jtxtCodCategoria.getText();
	 }

	 public void setJtxtCodCategoria(String valor) {
		 this.jtxtCodCategoria.setText(valor);
	 }

	 public String getCodProducto() {
		 return jtxtCodProducto.getText();
	 }

	 public void setJtxtCodProducto(String jtxtCodProducto) {
		 this.jtxtCodProducto.setText(jtxtCodProducto);
	 }

	 public String getPrecio() {
		 return jtxtPrecio.getText();
	 }

	 public void setJtxtPrecio(String jtxtPrecio) {
		 this.jtxtPrecio.setText(jtxtPrecio);
	 }

	 public void setCargarComboIngrediente(List<String> ingredientes) {
		 ComboBoxModel jcmbIngredienteOrdenModelModel =
			 new DefaultComboBoxModel(ingredientes.toArray());
		 jcmbIngredientes.setModel(jcmbIngredienteOrdenModelModel);
	 }

	 public String getJcmbIngredientes() {
		 return jcmbIngredientes.getSelectedItem().toString();
	 }

	 public String getJcmbNombreCategoria() {
		 return jcmbNombreCategoria.getSelectedItem().toString();
	 }

	 public void setCargarComboCategoria(List<String> categorias) {
		 ComboBoxModel jcmbCategoriaOrdenModelModel =
			 new DefaultComboBoxModel(categorias.toArray());
		 jcmbNombreCategoria.setModel(jcmbCategoriaOrdenModelModel);
	 }

	 public void setJcmbNombreCategoria(JComboBox jcmbNombreCategoria) {
		 this.jcmbNombreCategoria = jcmbNombreCategoria;
		 jcmbNombreCategoria.setBackground(new java.awt.Color(82,209,232));
		 jcmbNombreCategoria.setBorder(BorderFactory.createEtchedBorder(BevelBorder.LOWERED));
	 }
	 
	 public void setJcmbNombreCateg2(String valor3){
		 this.jcmbNombreCategoria.setName(valor3);
	 }

	 public void setJcmbIngredientes(JComboBox jcmbIngredientes) {
		 this.jcmbIngredientes = jcmbIngredientes;
		 jcmbIngredientes.setBackground(new java.awt.Color(82,209,232));
		 jcmbIngredientes.setBorder(BorderFactory.createEtchedBorder(BevelBorder.LOWERED));
	 }

	 public String getcodIngrediente() {
		 return jtxtcodIngrediente.getText();
	 }

	 public void setJtxtcodIngrediente(String valor){
		 this.jtxtcodIngrediente.setText(valor);
	 }

	 public JTable getjTableIngredientes() {
		 return jTableIngredientes;
	 }

	 public void mostrarMensaje(String mensaje) {
		 JOptionPane.showMessageDialog(this, mensaje);
	 }

	 public void borrarDatos(){
		 jtxtfechaRegistro.setText("");
		 jtxtCodProducto.setText("");
		 jtxtDescripcionProd.setText("");
		 jtxtCodCategoria.setText("");
		 jtxtfechaRegistro.setText("");
		 jtxtCantidad.setText("");
		 jtxtPrecio.setText("");
	 }

	 public void setResultados(AbstractTableModel abstractTableModel) {
	 	 jTableIngredientes.setModel(abstractTableModel);
	 }
}
